<?php
# keine PHP Fehler anzeigen
error_reporting(0);

# Wo liegt die cdr0.txt
$cdrfile0 = "C:\\ProgramData\\T-Com\\cdr0.txt";
$cdrfile1 = "C:\\ProgramData\\Swyx\\cdr0.txt";
if ( file_exists($cdrfile0)){ $cdrfile = $cdrfile0; }
if ( file_exists($cdrfile1)) { $cdrfile = $cdrfile1; }

# Ist eine CDR0 Datei vorhanden?
if (!file_exists($cdrfile)) {
    echo "Das CDR0 File $cdrfile kann nicht gelesen werden!"; exit;} 


# Haben wir leserechte?
if (!is_readable($cdrfile)) {
    echo "Das CDR0 File $cdrfile kann nicht gelesen werden! Keine Leserechte vergeben?"; exit;} 

	# Verbindung zur Datenbank anlegen
class DBSQLITE extends sqlite3 {
	function __construct()
	{
		$this->open('C:\inetpub\wwwroot\opencdr\Sqlite3\cdr.db');
		}
	}
# Verbinde zur Datenbank oder Fehler
$db = new DBSQLITE();
if(!$db){ echo "Oops!!! Something went wrong!!!"; } 
$database = "cdr"; 

$sql = "select callid from cdr order by rowid desc limit 1;";
$result=$db->query($sql);

# Falls es noch keine Datensätze gibt ist der Variable 0
$lasttimestamp = 0;
# Datensatz in der Variablen $lasttimestamp speichern
if ($row = $result->fetchArray()) { $lasttimestamp = $row[0]; }

# Neue Einträge in CDR0.txt finden

if (($handle = fopen("$cdrfile", "r")) !== FALSE) 
		{ 
			while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
				{
					#Datenbankfelder benennen
					list($CallId, $OriginationNumber, $OriginationName, $CalledNumber, $CalledName, $DestinationNumber, $DestinationName, $StartDate, $StartTime, $ScriptConnectDate, $ScriptConnectTime, $DeliveredDate, $DeliveredTime, $ConnectDate, $ConnectTime, $EndDate, $EndTime, $Currency, $Costs, $State, $PublicAccessPrefix, $LCRProvider, $ProjectNumber, $AOC, $OriginationDevice, $DestinationDevice, $TransferredByNumber, $TransferredByName, $TransferredCallId1, $TransferredCallId2, $TransferredToCallId, $TransferDate, $TransferTime, $DisconnectReason ) = $data;
				
					#Ist die CallId eine Nummer (Die ersten beiden Zeilen in der cdr0.txt nicht in die Datenbank schreiben)
					if (is_numeric($CallId)) 
						{
							# Wenn es neue Daten in der cdr0.txt gibt.....
							if($CallId > $lasttimestamp) 
								{
								# Datum umschreiben für Datenbank Format
								$Newdate = explode(".", $StartDate);
								$Tag = $Newdate[0];
								$Monat = $Newdate[1];
								$Jahr = $Newdate[2];
								$Insertdate = "$Jahr-$Monat-$Tag $StartTime";
								# ... in die Datenbank schreiben, sonst nicht				
								$db->exec("INSERT INTO cdr VALUES ('$CallId','$OriginationNumber','$OriginationName','$CalledNumber','$CalledName','$DestinationNumber','$DestinationName','$Insertdate','$StartTime','$ScriptConnectDate','$ScriptConnectTime','$DeliveredDate','$DeliveredTime','$ConnectDate','$ConnectTime','$EndDate','$EndTime','$Currency','$Costs','$State','$PublicAccessPrefix','$LCRProvider','$ProjectNumber','$AOC','$OriginationDevice','$DestinationDevice','$TransferredByNumber','$TransferredByName','$TransferredCallId1','$TransferredCallId2','$TransferredToCallId','$TransferDate','$TransferTime','$DisconnectReason')");
								#echo "$CallId, $OriginationNumber, $OriginationName, $CalledNumber, $CalledName, $DestinationNumber, $DestinationName, $Insertdate, $StartTime, $ScriptConnectDate, $ScriptConnectTime, $DeliveredDate, $DeliveredTime, $ConnectDate, $ConnectTime, $EndDate, $EndTime, $Currency, $Costs, $State, $PublicAccessPrefix, $LCRProvider, $ProjectNumber, $AOC, $OriginationDevice, $DestinationDevice, $TransferredByNumber, $TransferredByName, $TransferredCallId1, $TransferredCallId2, $TransferredToCallId, $TransferDate, $TransferTime, $DisconnectReason \n";
								#echo "$Insertdate\n";
								
								}
						}
				}
		}
# Umschreiben des Datumsformates
#$zeit = "14:05:00";		
#$datum = "14.05.2017";
#echo "Original =  $datum\n";
#$datum = explode(".", $datum);
#echo "Tag = $datum[0]\n";
#echo "Monat = $datum[1]\n";
#echo "Jahr = $datum[2]\n";
#echo "Neues Datum = $datum[2]-$datum[1]-$datum[0] $zeit\n";
# yyyy-MM-dd HH:mm:ss


# Verbindung zur Datenbank trennen
$db->close();

# cdr0.txt schließen
fclose($handle);

# Wieviele neue Datensätze gibt es?
$zahl = ($CallId - $lasttimestamp);
print "Daten in der Datenbank: $lasttimestamp";
print "Daten in der cdr0.txt: $CallId";
# Ausgabe der Anzahl neuer Datensätze
print("$zahl Datensätze importiert");
?>